//package com.hzncc.scaffold.config;
//
//import org.slf4j.Logger;
//import org.slf4j.LoggerFactory;
//import org.springframework.beans.factory.annotation.Value;
//import org.springframework.context.annotation.Configuration;
//import org.springframework.http.converter.HttpMessageConverter;
//import org.springframework.http.converter.json.MappingJackson2HttpMessageConverter;
//import org.springframework.web.servlet.config.annotation.CorsRegistry;
//import org.springframework.web.servlet.config.annotation.WebMvcConfigurer;
//
//import java.util.List;
//import java.util.Objects;
//
///**
// * @author lqs
// * mvc配置
// */
//@Configuration
//public class MvcConfig implements WebMvcConfigurer {
//
//  private static final Logger LOG = LoggerFactory.getLogger(MvcConfig.class);
//
//  @Value("${spring.profiles.active}")
//  String active;
//
//  /**
//   * jar不需要配置跨域,通过gateway访问,有全局跨域,dev通过ip访问,需要配置跨域
//   *
//   * @param active
//   * @return
//   */
//  private boolean loadCorsConfig(String active) {
//    boolean jar = !Objects.equals(active, "jar");
//    LOG.info("load cors config : {}", jar);
//    return jar;
//  }
//
//  /**
//   * 跨域设置
//   * 使用gateway代理的时候不需要配置跨域
//   */
//  @Override
//  public void addCorsMappings(CorsRegistry corsRegistry) {
//    if (loadCorsConfig(active)) {
//      corsRegistry.addMapping("/**")
//          .allowedOrigins("*")
//          .allowedMethods("GET", "HEAD", "POST", "PUT", "DELETE", "OPTIONS")
//          .allowCredentials(true)
//          .maxAge(3600)
//          .allowedHeaders("*");
//    }
//  }
//
//  /**
//   * ResponseBodyAdvice中遇到String会报错.
//   * 因为在所有的HttpMessageConverter实例集合中,StringHttpMessageConverter要比其它的Converter排得靠前一些.
//   * 我们需要将处理Object类型的HttpMessageConverter放得靠前一些
//   *
//   * @param converters
//   */
//  @Override
//  public void configureMessageConverters(List<HttpMessageConverter<?>> converters) {
//    converters.add(0, new MappingJackson2HttpMessageConverter());
//  }
//}
